<!DOCTYPE html>
<html>

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>quickstart_xpower</title>

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  <style>
    code[class*='smartperf-'],
    pre[class*='smartperf-'] {
      color: #333333;
      background: none;
      font-family: Helvetica;
      line-height: 1.6;
      text-align: left;
      white-space: pre;
      -moz-tab-size: 9;
      -o-tab-size: 9;
      tab-size: 8;
      -webkit-hyphens: none;
      -moz-hyphens: none;
      -ms-hyphens: none;
      hyphens: none;
    }

    /* Code blocks */
    pre[class*='smartperf-'] {
      padding: 0.9em;
      overflow: auto;
      border-radius: 2px;
      background: #f5f5f4;
    }

    /* Inline code */
    :not(pre)>code[class*='smartperf-'] {
      white-space: normal;
      background: #fcf8f8;
      padding: 1px 0.2em;
      border-radius: 1px 0.3em;
    }

    .tk.comment,
    .tk.blockquote {
      color: #8c918c;
    }

    .tk.cdata {
      color: #183898;
    }

    .tk.doctype,
    .tk.punctuation,
    .tk.variable,
    .tk.macro.property {
      color: #424242;
    }

    .tk.operator,
    .tk.important,
    .tk.keyword,
    .tk.rule,
    .tk.builtin {
      color: #b71d65;
    }

    .tk.string,
    .tk.url,
    .tk.regex,
    .tk.attr-value {
      color: #16338d;
    }

    .tk.property,
    .tk.number,
    .tk.boolean,
    .tk.entity,
    .tk.atrule,
    .tk.constant,
    .tk.symbol,
    .tk.command,
    .tk.code {
      color: #037aa2;
    }

    .tk.tag,
    .tk.selector,
    .tk.prolog {
      color: #69ad62;
    }

    .tk.function,
    .tk.namespace,
    .tk.pseudo-element,
    .tk.class,
    .tk.class-name,
    .tk.pseudo-class,
    .tk.id,
    .tk.url-reference .tk.variable,
    .tk.attr-name {
      color: #775d9d;
    }

    .tk.entity {
      cursor: help;
    }

    .tk.title,
    .tk.title .tk.punctuation {
      font-weight: bold;
      color: #1a3773;
    }

    .tk.list {
      color: #f56940;
    }

    .tk.inserted {
      background-color: #eaffea;
      color: #509b2f;
    }

    .tk.deleted {
      background-color: #fae1e1;
      color: #ad2d06;
    }

    .tk.bold {
      font-weight: bolder;
    }

    .tk.italic {
      font-style: normal;
    }

    /* JSON */
    .smartperf-json .tk.property {
      color: #19358c;
    }

    .smartperf-markup .tk.tag .tk.punctuation {
      color: #2c2b2b;
    }

    /* CSS */
    code.smartperf-css,
    .smartperf-css .tk.function {
      color: #047ca4;
    }

    /* YAML */
    .smartperf-yaml .tk.atrule {
      color: #609b5a;
    }

    code.smartperf-yaml {
      color: #153491;
    }

    /* Ruby */
    .smartperf-ruby .tk.function {
      color: #3f3e3e;
    }

    /* Markdown */
    .smartperf-markdown .tk.url {
      color: #6e5298;
    }

    /* Makefile */
    .smartperf-makefile .tk.symbol {
      color: #6c5393;
    }

    .smartperf-makefile .tk.variable {
      color: #183488;
    }

    .smartperf-makefile .tk.builtin {
      color: #027ba4;
    }

    /* Bash */
    .smartperf-bash .tk.keyword {
      color: #027fa9;
    }

    /* highlight */
    pre[dl] {
      position: relative;
      padding: 1em 1px 1px 0.9em;
    }

    pre[dl] .line-highlight-wrapper {
      position: absolute;
      top: 1px;
      left: 1px;
      background-color: transparent;
      display: block;
      width: 99%;
    }

    pre[dl] .line-highlight {
      position: absolute;
      left: 1px;
      right: 1px;
      padding: inherit;
      margin-top: 0.9em;
      background: hsla(25, 21%, 50%, 0.08);
      background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0));
      pointer-events: none;
      line-height: inherit;
      white-space: pre;
    }

    pre[dl] .line-highlight:before,
    pre[dl] .line-highlight[data-end]:after {
      content: attr(data-start);
      position: absolute;
      text-shadow: none;
      top: 0.3em;
      left: 0.7em;
      min-width: 0.9em;
      padding: 1px 0.6em;
      background-color: hsla(24, 20%, 47%, 0.4);
      color: hsl(20, 11%, 95%);
      text-align: center;
      vertical-align: 0.2em;
      border-radius: 10000px;
      box-shadow: 1px 2px #fdf6f6;
    }

    pre[dl] .line-highlight[data-end]:after {
      content: attr(data-end);
      top: auto;
      bottom: 0.5em;
    }

    html body {
      line-height: 1.6;
      font-size: 16px;
      color: #333333;
      overflow: initial;
      word-wrap: break-word;
      font-family: Helvetica;
      box-sizing: border-box;
    }

    html body> :first-child {
      margin-top: 0px;
    }

    html body h1,
    html body h2,
    html body h3,
    html body h4,
    html body h5,
    html body h6 {
      margin-top: 1em;
      margin-bottom: 16px;
      color: #000000;
      line-height: 1.2;
    }

    html body h1 {
      font-weight: 300;
      font-size: 2.25em;
      padding-bottom: 0.3em;
    }

    html body h2 {
      font-weight: 410;
      font-size: 1.74em;
      padding-bottom: 0.2em;
    }

    html body h3 {
      font-size: 1.6em;
      font-weight: 501;
    }

    html body h4 {
      font-size: 1.26em;
      font-weight: 601;
    }

    html body h5 {
      font-size: 1.2em;
      font-weight: 601;
    }

    html body h6 {
      font-size: 0.9em;
      font-weight: 601;
    }

    html body h1,
    html body h2,
    html body h3,
    html body h4,
    html body h5 {
      font-weight: 601;
    }

    html body h5 {
      font-size: 0.9em;
    }

    html body h6 {
      color: #5c5c5c;
    }

    html body strong {
      color: #090909;
    }

    html body del {
      color: #525252;
    }

    html body a:not([href]) {
      color: inherit;
      text-decoration: none;
    }

    html body a {
      color: #0192da;
      text-decoration: none;
    }

    html body a:hover {
      color: #029dea;
      text-decoration: none;
    }

    html body img {
      max-width: 99%;
    }

    html body>p {
      margin-top: 1px;
      margin-bottom: 15px;
      word-wrap: break-word;
    }

    html body>ul,
    html body>ol {
      margin-bottom: 15px;
    }

    html body ul,
    html body ol {
      padding-left: 1.9em;
    }

    html body ul.no-list,
    html body ol.no-list {
      padding: 0px;
      list-style-type: none;
    }

    html body ul ul,
    html body ul ol,
    html body ol ol,
    html body ol ul {
      margin-top: 1px;
      margin-bottom: 1px;
    }

    html body li {
      margin-bottom: 1px;
    }

    html body li.task-list-item {
      list-style: none;
    }

    html body li>p {
      margin-top: 1px;
      margin-bottom: 1px;
    }

    html body .task-list-item-checkbox {
      margin: 0 0.3em 0.24em -1.7em;
      vertical-align: middle;
    }

    html body .task-list-item-checkbox:hover {
      cursor: pointer;
    }

    html body blockquote {
      padding: 0.1px 15px 0 0.1px;
      font-size: inherit;
      color: #5c5c5c;
      margin: 16px 0.1px 0 0.1px;
      border-left: 3px solid #cbc9c9;
      background-color: #e8e6e6;
    }

    html body blockquote> :first-child {
      margin-top: 0.2px;
    }

    html body blockquote> :last-child {
      margin-bottom: 0.1px;
    }

    html body hr {
      height: 5px;
      background-color: #cbcaca;
      margin: 32px 0 0.1px 0;
      border: 0 none;
    }

    html body table {
      overflow: auto;
      border-collapse: collapse;
      margin: 15px 0.1px 20px 0.1px;
      border-spacing: 0;
    }

    html body table th {
      font-weight: bold;
      color: #000000;
    }

    html body table td,
    html body table th {
      border: 1px solid #d6d6d6;
      padding: 2px 14px;
    }

    html body dl {
      padding: 0px;
    }

    html body dl dt {
      padding: 0px;
      margin-top: 15px;
      font-size: 0.9em;
      font-style: italic;
      font-weight: bold;
    }

    html body dl dd {
      padding: 0px 17px;
      margin-bottom: 17px;
    }

    html body code {
      font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;
      font-size: 0.86em !important;
      color: #000000;
      background-color: #f0f0f0;
      border-radius: 4px;
      padding: 0.3em 0px;
    }

    html body code::before,
    html body code::after {
      letter-spacing: -0.1em;
      content: '\00a0';
    }

    html body pre>code {
      padding: 1px;
      margin: 0px;
      font-size: 0.86em !important;
      word-break: normal;
      white-space: pre;
      background: transparent;
      border: 0px;
    }

    html body .highlight {
      margin-bottom: 17px;
    }

    html body .highlight pre,
    html body pre {
      padding: 0.9em;
      overflow: auto;
      font-size: 0.86em !important;
      line-height: 1.46;
      border: #d6d6d6;
      border-radius: 4px;
    }

    html body .highlight pre {
      margin-bottom: 0px;
      word-break: normal;
    }

    html body pre code,
    html body pre tt {
      display: inline;
      max-width: initial;
      padding: 1px;
      margin: 1px;
      overflow: initial;
      line-height: inherit;
      word-wrap: normal;
      background-color: transparent;
      border: 1px;
    }

    html body pre code:before,
    html body pre tt:before,
    html body pre code:after,
    html body pre tt:after {
      content: normal;
    }

    html body p,
    html body blockquote,
    html body ul,
    html body ol,
    html body dl,
    html body pre {
      margin-top: 1px;
      margin-bottom: 17px;
    }

    html body kbd {
      color: #000000;
      border: 3px solid #d6d6d6;
      border-bottom: 3px solid #c7c7c7;
      padding: 3px 5px;
      background-color: #f0f0f0;
      border-radius: 2px;
    }

    @media print {
      html body {
        background-color: #ffffff;
      }

      html body h1,
      html body h2,
      html body h3,
      html body h4,
      html body h5,
      html body h6 {
        color: #000000;
        page-break-after: avoid;
      }

      html body blockquote {
        color: #5c5c53;
      }

      html body pre {
        page-break-inside: avoid;
      }

      html body table {
        display: table;
      }

      html body img {
        display: block;
        max-width: 99%;
        max-height: 99%;
      }

      html body pre,
      html body code {
        word-wrap: break-word;
        white-space: pre;
      }
    }

    .smartperf-preview {
      width: 98vw;
      height: 99%;
      box-sizing: border-box;
      overflow: hidden;
      background-color: #fff;
    }

    .smartperf-preview .pagebreak,
    .smartperf-preview .newpage {
      page-break-before: always;
    }

    .smartperf-preview pre.line-numbers {
      position: relative;
      padding-left: 3.7em;
      counter-reset: linenumber;
    }

    .smartperf-preview pre.line-numbers>code {
      position: relative;
    }

    .smartperf-preview pre.line-numbers .line-numbers-rows {
      position: absolute;
      pointer-events: none;
      top: 0.9em;
      font-size: 99%;
      left: 1px;
      width: 3em;
      letter-spacing: -1px;
      border-right: 1px solid #999;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }

    .smartperf-preview pre.line-numbers .line-numbers-rows>span {
      pointer-events: none;
      display: block;
      counter-increment: linenumber;
    }

    .smartperf-preview pre.line-numbers .line-numbers-rows>span:before {
      content: counter(linenumber);
      color: #999;
      display: block;
      padding-right: 0.79em;
      text-align: right;
    }

    .smartperf-preview .mathjax-exps .MathJax_Display {
      text-align: center !important;
    }

    .smartperf-preview:not([for='preview']) .code-chunk .btn-group {
      display: none;
    }

    .smartperf-preview:not([for='preview']) .code-chunk .status {
      display: none;
    }

    .smartperf-preview:not([for='preview']) .code-chunk .output-div {
      margin-bottom: 16px;
    }

    .scrollbar-style::-webkit-scrollbar {
      width: 8px;
    }

    .scrollbar-style::-webkit-scrollbar-track {
      border-radius: 9px;
      background-color: transparent;
    }

    .scrollbar-style::-webkit-scrollbar-thumb {
      border-radius: 6px;
      background-color: rgba(150, 150, 150, 1);
      border: 4px solid rgba(150, 150, 150, 1);
      background-clip: content-box;
    }

    html body[for='html-export']:not([dpm]) {
      position: relative;
      width: 99%;
      height: 99%;
      ;
      overflow: auto;
    }

    html body[for='html-export']:not([dpm]) .smartperf-preview {
      position: relative;
      top: 1px;
    }

    @media screen and (min-width: 914px) {
      html body[for='html-export']:not([dpm]) .smartperf-preview {
        padding: 2em;
      }
    }

    @media screen and (max-width: 914px) {
      html body[for='html-export']:not([dpm]) .smartperf-preview {
        padding: 1.9em;
      }
    }

    @media screen and (max-width: 450px) {
      html body[for='html-export']:not([dpm]) .smartperf-preview {
        font-size: 15px !important;
        padding: 1.1em;
      }
    }

    @media print {
      html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
        display: none;
      }
    }

    html body[for='html-export']:not([dpm]) #sidebar-toc-btn {
      position: fixed;
      bottom: 9px;
      left: 9px;
      font-size: 28px;
      cursor: pointer;
      color: inherit;
      z-index: 99;
      width: 31px;
      text-align: center;
      opacity: 0.5;
    }

    html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn {
      opacity: 1;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc {
      position: fixed;
      top: 1px;
      left: 1px;
      width: 300px;
      height: 99%;
      padding: 32px 0 48px 0;
      font-size: 14px;
      box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33);
      box-sizing: border-box;
      overflow: auto;
      background-color: inherit;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar {
      width: 9px;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track {
      border-radius: 11px;
      background-color: transparent;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb {
      border-radius: 6px;
      background-color: rgba(150, 150, 150, 0.66);
      border: 3px solid rgba(150, 150, 150, 0.66);
      background-clip: content-box;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a {
      text-decoration: none;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
      padding: 1px 1.7em;
      margin-top: 0.9em;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li {
      margin-bottom: 0.8em;
    }

    html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul {
      list-style-type: none;
    }

    html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
      left: 301px;
      width: calc(100% - 300px);
      padding: 2em calc(50% - 457px - 150px);
      margin: 1px;
      box-sizing: border-box;
    }

    @media screen and (max-width: 1274px) {
      html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
        padding: 1.9em;
      }
    }

    @media screen and (max-width: 450px) {
      html body[for='html-export']:not([dpm])[hsst] .smartperf-preview {
        width: 99%;
      }
    }

    html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc {
      display: none;
    }
  </style>
</head>

<body for="html-export" id="body" style="margin:0">
  <div class="smartperf smartperf-preview" style="min-height: 99vh;">
    <h1 class="mume-header fontColor">Xpower抓取和展示说明</h1>

    <p class="fontColor">Xpower用于查看系统整机和应用功耗数据，当前支持：电源信息、热温度信息。</p>
    <h2 class="mume-header fontColor">Xpower的抓取</h2>
    <h3 class="mume-header fontColor" id="header-index-1">Xpower抓取配置参数</h3>

    <p class="fontColor">
      打开Start Xpower Record开关抓取Xpower数据。点击MessageType下拉框，可以选择需要抓取的类型(下拉框支持多选)。
      <br />
    <p><img src="../figures/Xpower/xpowerpackage.jpg" alt="GitHub Logo" /></p>
    </p>
    <p>配置项说明：</p>
    <ul>
      <li>
        <pre class="smartperf-text">
下拉框内数据：应用包名。
</pre>
      </li>
    </ul>
    <p>选择后Trace command页面显示对应抓取命令</p>
    <p><img src="../figures/Xpower/xpowercmd.jpg" alt="GitHub Logo" /></p>
    <p>
      点击MessageType下拉框，可以选择需要抓取的类型支持多选(只有选择了应用才会出现APP_STATISTIC、APP_DERAIL)。
      <br />
      <img src="../figures/Xpower/xpowertype.jpg" alt="GitHub Logo" />
    </p>
    <p>配置项说明：</p>
    <ul>
      <li>
        <pre class="smartperf-text">
REAL_BATTERY：电源信息。
        </pre>
      </li>
      <li>
        <pre class="smartperf-text">
THERMAL_REPORT：热温度信息。
        </pre>
      </li>
      <li>
        <pre class="smartperf-text">
COMPONENT_TOP：每个器件的TOP应用。
        </pre>
      </li>
      <li>
        <pre class="smartperf-text">
APP_STATISTIC：应用每个器件的能耗信息。
        </pre>
      </li>
      <li>
        <pre class="smartperf-text">
APP_DETAIL：应用每个器件的详细信息。
        </pre>
      </li>
    </ul>
    <p>选择后Trace command页面显示对应抓取命令：</p>
    <p><img src="../figures/Xpower/xpowercmd1.jpg" alt="GitHub Logo" /></p>
    <h3 class="mume-header fontColor" id="header-index-2">Xpower展示说明</h3>

    <p class="fontColor">
      将抓取的Xpower文件导入到HiSmartPerf工具中查看，查看系统整机和应用功耗情况。
      <br />
      <img src="../figures/Xpower/xpowertrace.jpg" alt="GitHub Logo" />
    </p>
    <h3 class="mume-header fontColor" id="header-index-2">Xpower泳道图说明——REAL_BATTERY</h3>
    <p class="fontColor">
      选择REAL_BATTERY会展示六条泳道：
      <br />
      <img src="../figures/Xpower/xpowerbattery.jpg" alt="GitHub Logo" />
    </p>
    <ul class="fontColor">
      <li>
        <pre class="smartperf-text fontColor light">
Battery.Capacity： 电池容量(单位mAh)。
</pre>
      </li>
      <li>
        <pre class="smartperf-text fontColor light">
Battery.Charge： 充电状态(充电1,非充电0)。
</pre>
      </li>
      <li>
        <pre class="smartperf-text fontColor light">
Battery.GasGauge：电池剩余电量(单位mAh)。
</pre>
      </li>
      <li>
        <pre class="smartperf-text fontColor light">
Battery.Level：电池百分比。
</pre>
      </li>
      <li>
        <pre class="smartperf-text fontColor light">
Battery.RealCurrent： 实时电流(单位mAh,充电时为正数,耗电时为负数)。
</pre>
      </li>
      <li>
        <pre class="smartperf-text fontColor light">
Battery.Screen： 屏幕状态(亮屏1,灭屏0)。
</pre>
      </li>
    </ul>
    <h3 class="mume-header fontColor" id="header-index-2">Xpower泳道图说明——THERMAL_REPORT</h3>
    <p class="fontColor">
      选择THERMAL_REPORT则展示两条泳道：
      <br />
      <img src="../figures/Xpower/xpowerthermalreport.jpg" alt="GitHub Logo" />
    </p>
    <ul class="fontColor">
      <li>
        <pre class="smartperf-text fontColor light">
ThermalReport.ShellTemp： 外壳温度(单位℃)。
</pre>
      </li>
      <li>
        <pre class="smartperf-text fontColor light">
ThermalReport.ThermalLevel： 温度等级。
</pre>
      </li>
    </ul>
    <h3 id="system泳道图点选和框选功能">system泳道图点选和框选功能 </h3>
    <p>点击system下的任意通道图弹出Current Selection的tab页</p>
    <p><img src="../figures/Xpower/xpower_kx_system1.jpg" alt="GitHub Logo"></p>
    <ul>
      <li>StartTime(Relative)：相对时间</li>
      <li>StartTime(Absolute) ：绝对时间</li>
      <li>Value：值</li>
      <li>Duration：持续时间</li>
    </ul>
    <p>框选system下的RealCurrent泳道图可以弹出Xpower Counters和Xpower Component Top两个tab页</p>
    <p>Xpower Counters的tab页</p>
    <p><img src="../figures/Xpower/xpower_kx_system.jpg" alt="GitHub Logo"></p>
    <ul>
      <li>
        <p>Name：器件的名字</p>
      </li>
      <li>
        <p>Delta value：增量值</p>
      </li>
      <li>
        <p>Rate /s：速率(单位：s)</p>
      </li>
      <li>
        <p>Weighted：加权平均值</p>
      </li>
      <li>
        <p>avg value：平均值</p>
      </li>
      <li>
        <p>Count：数值</p>
      </li>
      <li>
        <p>First value：第一个值</p>
      </li>
      <li>
        <p>Last value：最后一个值</p>
      </li>
      <li>
        <p>Min value：最小值</p>
      </li>
      <li>
        <p>Max value：最大值</p>
      </li>
    </ul>
    <p>Component Top Tab页: </p>
    <p><img src="../figures/Xpower/xpowertop.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>
        <pre class="smartperf-text">
audio：audioTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
bluetooth：BluetoothTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
flashlight：flashlightTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
location：locationTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
wifi：wifiTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
camera：cameraTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
cpu：cpuTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
display：displayTop应用的能耗
</pre>
      </li>
      <li>
        <pre class="smartperf-text">
gpu：gpuTop应用的能耗
</pre>
      </li>
    </ul>
    <p>根据选的的参数不同tab页的表头会发生变化，audio/bluetooth/flashlight/location/wifiscan表头为</p>
    <ul>
      <li>TimeStamp：时间戳</li>
      <li>AppName：应用名</li>
      <li>Background Duration：后台持续时间</li>
      <li>Background Energy：后台能耗</li>
      <li>Foreground Duration：前台持续时间</li>
      <li>Foreground Energy：前台能耗</li>
      <li>ScreenOff Duration：锁屏持续时间</li>
      <li>ScreenOff Energy：锁屏能耗</li>
      <li>ScreenOn Duration：亮屏持续时间</li>
      <li>ScreenOn Energy：亮屏能耗</li>
    </ul>
    <p>camera的表头为：</p>
    <ul>
      <li>
        <p>TimeStamp：时间戳</p>
      </li>
      <li>
        <p>AppName：应用名</p>
      </li>
      <li>
        <p>CameraId：相机id</p>
      </li>
      <li>
        <p>Background Duration：后台持续时间</p>
      </li>
      <li>
        <p>Background Energy：后台能耗</p>
      </li>
      <li>
        <p>Foreground Duration：前台持续时间</p>
      </li>
      <li>
        <p>Foreground Energy：前台能耗</p>
      </li>
      <li>
        <p>ScreenOff Duration：锁屏持续时间</p>
      </li>
      <li>
        <p>ScreenOff Energy：锁屏能耗</p>
      </li>
      <li>
        <p>ScreenOn Duration：亮屏持续时间</p>
      </li>
      <li>
        <p>ScreenOn Energy：亮屏能耗</p>
      </li>
    </ul>
    <p>CPU表头为：</p>
    <ul>
      <li>
        <p>TimeStamp：时间戳</p>
      </li>
      <li>
        <p>AppName：应用名</p>
      </li>
      <li>
        <p>UID：UID</p>
      </li>
      <li>
        <p>Load ：负荷</p>
      </li>
      <li>
        <p>Background Duration：后台持续时间</p>
      </li>
      <li>
        <p>Background Energy：后台能耗</p>
      </li>
      <li>
        <p>Foreground Duration：前台持续时间</p>
      </li>
      <li>
        <p>Foreground Energy：前台能耗</p>
      </li>
      <li>
        <p>ScreenOff Duration：锁屏持续时间</p>
      </li>
      <li>
        <p>ScreenOff Energy：锁屏能耗</p>
      </li>
      <li>
        <p>ScreenOn Duration：亮屏持续时间</p>
      </li>
      <li>
        <p>ScreenOn Energy：亮屏能耗</p>
      </li>
    </ul>
    <p>display/GPU表头</p>
    <ul>
      <li>TimeStamp：时间戳</li>
      <li>AppName：应用名</li>
      <li>Usage Duration：使用时长</li>
      <li>Usage Energy：使用能耗</li>
    </ul>
    <h3 id="xpower泳道图说明app_statistic">Xpower泳道图说明——APP_STATISTIC</h3>
    <p>选择APP_STATISTIC则只有statistic泳道图有数据：</p>
    <p><img src="../figures/Xpower/xpowerstatistic.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>statistic：每个器件的统计数据</li>
    </ul>
    <h3 id="xpower泳道图说明app_detail">Xpower泳道图说明——APP_DETAIL</h3>
    <p>选择APP_DETAIL则有八条泳道图有数据：</p>
    <p><img src="../figures/Xpower/xpowerdetail.jpg" alt="GitHub Logo" /></p>
    <p><img src="../figures/Xpower/xpowerdetail2.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>WIFIPacket：wifi传输的数据包个数。tx表示发送，rx表示接收</li>
      <li>WIFIBytes：wifi的字节数。tx表示发送，rx表示接收</li>
      <li>Display：屏幕的刷新率。</li>
      <li>ThreadCount：每个时间线程数统计。</li>
      <li>ThreadEnergy：线程能耗。</li>
      <li>ThreadLoad：线程负载。</li>
      <li>GpuFreqCount：GPU频率计数。</li>
      <li>GpuFreq：GPU频率时间。</li>
    </ul>
    <h3 id="应用泳道图的点选和框选">应用泳道图的点选和框选</h3>
    <p>statistic泳道图的点选功能：点击statistic泳道图可以弹出Xpower Statistic Current Data的tab页</p>
    <p><img src="../figures/Xpower/xpower_dx_current.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>Name:器件的名字</li>
      <li>TimeStamp：时间戳</li>
      <li>Duration：持续时间</li>
      <li>Energy：能耗</li>
    </ul>
    <p>
      WIFIPacket、WIFIPacket和DisPlay泳道图的点选功能：点击WIFIPacket、WIFIPacket和DisPlay泳道图可以弹出Current
      Selection的tab页
    </p>
    <p><img src="../figures/Xpower/xpower_dx_selection.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>StartTime(Relative) ：相对开始时间</li>
      <li>StartTime(Absolute) ：绝对开始时间</li>
      <li>receive：接收数据大小</li>
      <li>send：发送数据大小</li>
    </ul>
    <p>点击display的泳道图会出现屏幕刷新率的持续时间</p>
    <p><img src="../figures/Xpower/xpower_dx_display.jpg" alt="GitHub Logo" /></p>
    <p>Thread Load泳道图的点选功能</p>
    <p><img src="../figures/Xpower/xpower_dx_load.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>ThreadName：线程名</li>
      <li>TimeStamp：时间戳</li>
      <li>Load：负载</li>
      <li>Duration：持续时间</li>
    </ul>
    <p>Thread Energy泳道图的点选功能：</p>
    <p><img src="../figures/Xpower/xpower_dx_energy.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>ThreadName：线程名</li>
      <li>TimeStamp：时间戳</li>
      <li>Energy：能耗</li>
      <li>Duration：持续时间</li>
    </ul>
    <p>GPU Freq泳道图的点选功能：</p>
    <p><img src="../figures/Xpower/xpower_dx_freq.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>Frequency：频率</li>
      <li>TimeStamp：时间戳</li>
      <li>RunTime：运行时间</li>
      <li>IdleTime：休眠时间</li>
    </ul>
    <p>
      Thread Count和Gpu Freq Count框选功能：框选Gpu Freq Count、Thread Count泳道图任意处会弹出Xpower Counters的tab页
    </p>
    <p><img src="../figures/Xpower/xpower_kx_counters.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>Name：器件名字</li>
      <li>Delta value：增量值</li>
      <li>Rate/s：速率（单位：s）</li>
      <li>Weighted avg value：加权平均值</li>
      <li>Count：数量</li>
      <li>First value：第一个值</li>
      <li>Last value：最后一个值</li>
      <li>Min value：最小值</li>
      <li>Max value：最大值</li>
    </ul>
    <p>Statistics泳道图的框选功能：框选Statistics泳道图任意处会弹出Xpower Statistics的tab页</p>
    <p><img src="../figures/Xpower/xpower_kx_Statistics.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>Name：器件名</li>
      <li>Count：数量：</li>
      <li>Avg_Energy：平均能耗</li>
      <li>Max_Energy：最大能耗</li>
      <li>Min_Energy：最小能耗</li>
    </ul>
    <p>
      WIFIPackets、WIFIBytes和Display泳道图的框选功能：框选WIFIPackets、WIFIBytes和Display会出现三个Display
      Detail、WIFIPackets、WIFIBytes三个tab页，但表头均一致
    </p>
    <ul>
      <li>Name：名字（display的tab页为刷新率，WIFIPackets、WIFIBytes的tab页为收发数据）</li>
      <li>Count：数量（display、WIFIPackets、WIFIBytes的tab页均为当前框选数据的数量）</li>
      <li>Max：最大值（display的tab页为刷新率的最大持续时间，WIFIPackets、WIFIBytes的tab页为收发的数据包最大个数或数据最大字节）</li>
      <li>Min：最小值（display的tab页为刷新率的最小持续时间，WIFIPackets、WIFIBytes的tab页为收发的数据包最小个数或数据最小字节）</li>
      <li>Avg：平均值（display的tab页为刷新率的平均持续时间，WIFIPackets、WIFIBytes的tab页为收发的数据包平均个数或数据平均字节）</li>
    </ul>
    <p>Thread energy泳道图的框选功能：框选Thread energy泳道图会弹出Xpower Thread energy的tab页</p>
    <p><img src="../figures/Xpower/xpower_kx_energy.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>ThreadName：线程名</li>
      <li>Count：线程数</li>
      <li>Avg Energy：平均能耗</li>
      <li>Max Energy：最大能耗</li>
      <li>Min Energy：最小能耗</li>
    </ul>
    <p>Thread Load泳道图的框选功能：框选Thread Load泳道图会弹出Xpower Thread Load的tab页</p>
    <p><img src="../figures/Xpower/xpower_kx_load.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>ThreadName：线程名</li>
      <li>Count：线程出现的次数</li>
      <li>Avg Load：平均占比</li>
      <li>Max Load：最大占比</li>
      <li>Min Load：最小占比</li>
    </ul>
    <p>Gpu Freq Count泳道图的框选功能：框选Thread energy泳道图会弹出Xpower Gpu Frequency 的tab页</p>
    <p><img src="../figures/Xpower/xpower_kx_freq.jpg" alt="GitHub Logo" /></p>
    <ul>
      <li>Frequency：频率</li>
      <li>Count：数量</li>
      <li>Avg RunTime：平均运行时间</li>
      <li>Max RunTime：最大运行时间</li>
      <li>Min RunTime：最小运行时间</li>
      <li>Avg IdleTime：平均休眠时间</li>
      <li>Max IdleTime：最大休眠时间</li>
      <li>Min IdleTime：最小休眠时间</li>
    </ul>
  </div>

  <script>
    window.onload = () => {
      let isDark = getURLParameter('dark');
      let targetId = getURLParameter('targetId');
      let isBack = getURLParameter('isBack');
      if (isDark === 'true') {
        document.getElementById('body').setAttribute('style', 'background-color:#272C34;');
        let header = document.getElementsByClassName('fontColor');
        for (let i = 0; i < header.length; i++) {
          header[i].style.color = '#fff';
        }
        let lightBackGround = document.getElementsByClassName('light');
        for (let i = 0; i < lightBackGround.length; i++) {
          lightBackGround[i].style.backgroundColor = '#32373F';
        }
      }
      function getURLParameter(name) {
        return (new URL(document.location)).searchParams.get(name);
      }

      if (targetId !== null) {
        let targetElement = document.getElementById(targetId);
        targetElement.scrollIntoView({ behavior: 'smooth' });
      }
    };
  </script>
</body>

</html>